package Day009_Map_斗地主_冒泡排序.demo02_HashMap集合;

/*
 HashMap集合(类): 元素无索引,键唯一,键值对存取无序
                                    由哈希表结构保证键唯一,如果键的类型是自定义类型,就要重写equals()和hashCode()方法

    练习：每位学生（姓名，年龄）都有自己的家庭住址。那么，既然有对应关系，则将学生对象和家庭住址存储到map集合中。学生作为键, 家庭住址作为值。
    注意，学生姓名相同并且年龄相同视为同一名学生。
*/

import java.util.HashMap;


public class HashMap存储自定义类型 {
    public static void main(String[] args) {

        //创建Map集合
        HashMap<Student,String> map = new HashMap();
        //创建学生对象
        Student stu1 = new Student("杨紫",18);
        Student stu2 = new Student("赵丽颖",38);
        Student stu3 = new Student("陈钰琪",28);
        Student stu4 = new Student("杨紫",18);
        //姓名对象作为键,住址作为值
        map.put(stu1,"北京");
        map.put(stu2,"上海");
        map.put(stu3,"广州");
        map.put(stu4,"深圳"); //stu1 stu4是一样的键,深圳会覆盖北京
        //打印集合
        System.out.println(map.size()); // 3
                                        // 4(equals() hashCode()没有重写 )
        System.out.println(map); //{Student{name='杨紫', age=18}=北京, Student{name='陈钰琪', age=28}=广州, Student{name='赵丽颖', age=38}=上海}
                                 //{Student{name='杨紫', age=18}=深圳, Student{name='陈钰琪', age=28}=广州, Student{name='赵丽颖', age=38}=上海}
    }
}
